// 导出login
const express = require('express')
const md5 = require('blueimp-md5')
const user = require('../db/user')
const jwt = require('jsonwebtoken')
let { secret } = require('../constant')
// 创建路由容器
const register = express.Router()
// 挂载路由
register.post('/register', function (req, res) {
    // 查找是否已经有了该账号
    // 有相同用户名的账号返回失败
    user.findOneByUsername(req.body)
        .then(data => {
            if (data.length > 0) {
                return res.json({
                    code: 0,
                    msg: '注册失败，帐号已存在',
                })
            } else {
                // 否则保存数据，返回token
                user.save(req.body)
                    .then(() => {
                        // 注册成功的话生成token并返回
                        user.findOneByUsername(req.body).then(d => {
                            const token = jwt.sign(
                                {
                                    username: d.username,
                                    id: d.id,
                                },
                                secret,
                                {
                                    expiresIn: '72h',
                                }
                            ) // 生成 JWT
                            return res.json({
                                code: 1,
                                msg: '注册成功',
                                token,
                                username: d[0].username,
                                count: d[0].count,
                            })
                        })
                    })
                    .catch(err => {
                        console.log(err)
                    })
            }
        })
        .catch(err => {
            console.log(err)
        })
})

module.exports = register
